package drone.basis.annotaion ;

import static java.lang.annotation.ElementType.ANNOTATION_TYPE ;
import static java.lang.annotation.ElementType.CONSTRUCTOR ;
import static java.lang.annotation.ElementType.FIELD ;
import static java.lang.annotation.ElementType.METHOD ;
import static java.lang.annotation.ElementType.PARAMETER ;
import static java.lang.annotation.ElementType.TYPE_USE ;

import java.lang.annotation.Documented ;
import java.lang.annotation.Retention ;
import java.lang.annotation.RetentionPolicy ;
import java.lang.annotation.Target ;

import javax.validation.Constraint ;
import javax.validation.Payload ;

import drone.basis.validate.LogicValidate ;

@Constraint ( validatedBy = LogicValidate.class )
@Target (
{
		METHOD ,
		FIELD ,
		ANNOTATION_TYPE ,
		CONSTRUCTOR ,
		PARAMETER ,
		TYPE_USE
} )
@Retention ( RetentionPolicy.RUNTIME )
@Documented
public @interface Logic
{

	String message ( ) default "logistics order no format exception";

	Class < ? > [ ] groups ( ) default { };

	Class < ? extends Payload > [ ] payload ( ) default { };

}
